MVVM
详细内容请参考使用视图模型
MVVM 工具包库(.NET 社区工具包的一部分)是标准、自包含、轻量类型的集合,提供用于使用 MVVM 模式构建新式应用的开始实现。
MVVM 工具包通过 CommunityToolkit.Mvvm NuGet 包分发。
无需编写自己的视图模型基类,而是继承自工具包的 ObservableObject 类,该类提供视图模型基类所需的一切。 可以通过以下方法简化 EmployeeViewModel:
using System.ComponentModel;
public class EmployeeViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
private Employee _model;
public string Name
{
get {...}
set
{
_model.Name = value;
OnPropertyChanged(nameof(Name))
}
}
protected void OnPropertyChanged(string propertyName) =>
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
简化为以下代码:
using Microsoft.Toolkit.Mvvm.ComponentModel;
public class EmployeeViewModel : ObservableObject
{
private string _name;
public string Name
{
get => _name;
set => SetProperty(ref _name, value);
}
}
可以使用 MVVM 工具包提供的源生成器进一步简化代码。 通过将类设为 partial 并向 [ObservableProperty] 变量添加 private,将生成带有适当属性更改通知的公共属性 Name。
using Microsoft.Toolkit.Mvvm.ComponentModel;
public partial class EmployeeViewModel : ObservableObject
{
[ObservableProperty]
private string _name;
}